﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Namespace roncliProductions.LibWowArmory.Enums

    ''' <summary>
    ''' An enumeration to describe an item's rarity
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum RarityType
        'The numbers listed here correspond to the rarity values in the item search results
        All = -1
        Poor = 0
        Common = 1
        Uncommon = 2
        Rare = 3
        Epic = 4
        Legendary = 5
        OtherLegendary = 6 'The code indicates that this is orange, but no items use it
        Heirloom = 7
    End Enum

    ''' <summary>
    ''' An enumeration to describe a source filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum SourceFilterType
        AllSources = 0
        DungeonsAndRaidDrops = 1
        ReputationRewards = 2
        QuestRewards = 3
        PvpRewardsAlliance = 4
        PvpRewardsHorde = 5
    End Enum

    ''' <summary>
    ''' An enumeration to describe a dungeon filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum DungeonType
        AllDungeonsAndRaids = 0
        DungeonsOnly = 1
        RaidsOnly = 2
        BadgeOfJusticeRewards = 3
        EmblemOfHeroism = 4
        EmblemOfValor = 5
        EmblemOfConquest = 6
    End Enum

    ''' <summary>
    ''' An enumeration to describe a dungeon difficulty filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum DifficultyType
        NormalAndHeroic = 0
        NormalOnly = 1
        HeroicOnly = 2
    End Enum

    ''' <summary>
    ''' An enumeration to describe the PvP Alliance filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum PvpAllianceSourceType
        AllPvpSources = 0
        Wintergrasp = 1
        ArenaSeason6 = 2
        ArenaSeason5 = 3
        ArenaSeason4 = 4
        HonorRewards = 5
        ArathiBasin = 6
        AlteracVally = 7
        WarsongGulch = 8
        Halaa = 9
        HonorHold = 10
        Terokkar = 11
        Zangarmarsh = 12
    End Enum

    ''' <summary>
    ''' An enumeration to describe the PvP Horde filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum PvpHordeSourceType
        AllPvpSources = 0
        Wintergrasp = 1
        ArenaSeason6 = 2
        ArenaSeason5 = 3
        ArenaSeason4 = 4
        HonorRewards = 5
        ArathiBasin = 6
        AlteracVally = 7
        WarsongGulch = 8
        Halaa = 9
        Thrallmar = 10
        Terokkar = 11
        Zangarmarsh = 12
    End Enum

    ''' <summary>
    ''' An enumeration to describe an item type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ItemTypeType
        AllItems = 0
        Weapons = 1
        Armor = 2
        Gems = 3
        Containers = 4
        Consumables = 5
        TradeGoods = 6
        Projectiles = 7
        Quivers = 8
        Recipes = 9
        Reagents = 10
        Miscellaneous = 11
        EnchantmentsPermanent = 12
        EnchantmentsTemporary = 13
        Mounts = 14
        SmallPets = 15
        Keys = 16
        Glyphs = 17
    End Enum

    ''' <summary>
    ''' An enumeration to describe a desired by filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum DesiredByType
        'The numbers listed here correspond to the values listed in the select box of the armory
        AnyClass = 0
        DeathKnight = 6
        Druid = 11
        Hunter = 3
        Mage = 8
        Paladin = 2
        Priest = 5
        Rogue = 4
        Shaman = 7
        Warlock = 9
        Warrior = 1
    End Enum

    ''' <summary>
    ''' An enumeration to further describe a desired by filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum DesiredByRoleType
        AnyType = 0
        Tank = 1
        MeleeDPS = 2
        CasterDPS = 3
        Healer = 4
        PlusDamageOnly = 5
        PlusDamageAndCrit = 6
    End Enum

    ''' <summary>
    ''' An enumeration to describe a weapon slot filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum WeaponSlotType
        AllSlots = 0
        MainHand = 1
        OffHand = 2
        MainOrOffHand = 3
        TwoHanded = 4
        Ranged = 5
    End Enum

    ''' <summary>
    ''' An enumeration to describe a weapon type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum WeaponTypeType
        AllWeaponTypes = 0
        OneHandedAxes = 1
        TwoHandedAxes = 2
        Bows = 3
        Guns = 4
        OneHandedMaces = 5
        TwoHandedMaces = 6
        Polearms = 7
        OneHandedSwords = 7
        TwoHandedSwords = 8
        Staves = 9
        FistWeapons = 10
        Miscellanous = 11
        Daggers = 12
        Thrown = 13
        Crossbows = 14
        Wands = 15
        FishingPole = 16
    End Enum

    ''' <summary>
    ''' An enumeration to describe an armor slot filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ArmorSlotType
        AllSlots = 0
        Head = 1
        Neck = 2
        Shoulders = 3
        Back = 4
        Chest = 5
        Shirt = 6
        Wrists = 7
        Hands = 8
        Waist = 9
        Legs = 10
        Feet = 11
        Finger = 12
        Trinket = 13
        OffHandFrill = 14
    End Enum

    ''' <summary>
    ''' An enumeration to describe an armor type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ArmorTypeType
        AllArmorTypes = 0
        Cloth = 1
        Leather = 2
        Mail = 3
        Plate = 4
        Shield = 5
        Idol = 6
        Libram = 7
        Totem = 8
        Sigil = 9
        Miscellaneous = 10
    End Enum

    ''' <summary>
    ''' An enumeration to describe a gem type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum GemTypeType
        AllGemTypes = 0
        Blue = 1
        Red = 2
        Yellow = 3
        Meta = 4
        Green = 5
        Orange = 6
        Purple = 7
        Prismatic = 8
    End Enum

    ''' <summary>
    ''' An enumeration to describe a bag type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum BagTypeType
        AllBags = 0
        Bag = 1
        SoulBag = 2
        HerbBag = 3
        EnchantingBag = 4
        EngineeringBag = 5
        GemBag = 6
        MiningBag = 7
    End Enum

    ''' <summary>
    ''' An enumeration to describe a projectile type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ProjectileTypeType
        AllProjectiles = 0
        Arrow = 1
        Bullet = 2
    End Enum

    ''' <summary>
    ''' An enumeration to describe a quiver type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum QuiverTypeType
        AllQuivers = 0
        Quiver = 1
        AmmoPouch = 2
    End Enum

    ''' <summary>
    ''' An enumeration to describe a recipe type filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum RecipesTypeType
        AllRecipes = 0
        Books = 1
        Leatherworking = 2
        Tailoring = 3
        Engineering = 4
        Blacksmithing = 5
        Cooking = 6
        Alchemy = 7
        FirstAid = 8
        Enchanting = 9
        Fishing = 10
        Jewelcrafting = 11
    End Enum

    ''' <summary>
    ''' An enumeration to describe a permanent enchantment slot filter
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum PermanentEnchantmentSlotType
        ' The numbers here match the numbers for the ArmorSlotType enum
        AllSlots = 0
        Head = 1
        Shoulders = 3
        Back = 4
        Chest = 5
        Wrists = 7
        Hands = 8
        Legs = 10
        Feet = 11
        Finger = 12
        Weapon = 15
        Shield = 16
    End Enum

    ''' <summary>
    ''' An enumeration to describe advanced filter options
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum AdvancedOptionsType
        BaseStat_Strength = 0
        BaseStat_Agility = 1
        BaseStat_Stamina = 2
        BaseStat_Intellect = 3
        BaseStat_Spirit = 4
        General_CritRating = 5
        General_HitRating = 6
        General_HasteRating = 7
        PhysicalCombat_AttackPower = 8
        PhysicalCombat_FeralAttackPower = 9
        PhysicalCombat_ArmorPenetration = 10
        PhysicalCombat_ExpertiseRating = 11
        Spell_SpellPower = 12
        Spell_SpellCritRating = 13
        Spell_SpellHitRating = 14
        Spell_Penetration = 15
        Spell_ManaRegen = 16
        Spell_SpellHasteRating = 17
        Spell_ArcaneDamage = 18
        Spell_HolyDamage = 19
        Spell_ShadowDamage = 20
        Spell_NatureDamage = 21
        Spell_FrostDamage = 22
        Spell_FireDamage = 23
        Defense_Armor = 24
        Defense_BlockRating = 25
        Defense_BlockValue = 26
        Defense_DefenseRating = 27
        Defense_DodgeRating = 28
        Defense_ParryRating = 29
        Defense_HealthRegen = 30
        Defense_Resilience = 31
        Resistance_ArcaneResist = 32
        Resistance_ShadowResist = 33
        Resistance_NatureResist = 34
        Resistance_FrostResist = 35
        Resistance_FireResist = 36
        Weapon_Dps = 37
        Weapon_MinDamage = 38
        Weapon_MaxDamage = 39
        Weapon_Speed = 40
        General_BindOnPickup = 41
        General_BindOnEquip = 42
        General_BindOnUse = 43
        General_Unique = 44
        General_UniqueEquipped = 45
        General_SpellEffect_ChanceToResist = 46
        General_SpellEffect_AvoidInterruption = 47
        General_SpellEffect_ChanceOnHitOrCast = 48
        General_SpellEffect_DispelEffects = 49
        General_SpellEffect_ReduceCooldown = 50
        General_SpellEffect_ReduceCastTime = 51
        General_SpellEffect_ReduceSpellCost = 52
        General_SpellEffect_IncreaseDuration = 53
        General_SpellEffect_IncreaseRange = 54
        General_SpellEffect_ReduceThreat = 55
        General_SpellEffect_GroupBuff = 56
        General_SpellEffect_SummonCreature = 57
    End Enum

    ''' <summary>
    ''' An enumeration to describe an advanced filter option's operator
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum AdvancedOptionsOperatorType
        GreaterThan = 0
        GreaterThanEqualTo = 1
        EqualTo = 2
        LessThan = 3
        LessThanEqualTo = 4
    End Enum

    ''' <summary>
    ''' An enumeration to describe a World of Warcraft release
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ReleaseType
        Classic = 0
        BurningCrusade = 1
        WrathOfTheLichKing = 2
    End Enum

    ''' <summary>
    ''' An enumeration to describe a faction
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum FactionType
        None = -1
        Alliance = 0
        Horde = 1
    End Enum

    ''' <summary>
    ''' An enumeration to describe a drop rate
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum DropRateType
        None = 0

        ''' <summary>
        ''' 1% to 2%
        ''' </summary>
        ''' <remarks></remarks>
        ExtremelyLow = 1

        ''' <summary>
        ''' 3% to 14%
        ''' </summary>
        ''' <remarks></remarks>
        VeryLow = 2

        ''' <summary>
        ''' 15% to 24%
        ''' </summary>
        ''' <remarks></remarks>
        Low = 3

        ''' <summary>
        ''' 25% to 50%
        ''' </summary>
        ''' <remarks></remarks>
        Medium = 4

        ''' <summary>
        ''' 51% to 99%
        ''' </summary>
        ''' <remarks></remarks>
        High = 5

        Guaranteed = 6
    End Enum

    ''' <summary>
    ''' An enumeration to describe an NPC's classification
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ClassificationType
        Normal = 0
        Elite = 1
        RareElite = 2
        Boss = 3
        Rare = 4
    End Enum

    ''' <summary>
    ''' An enumeration to describe a race
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum RaceType
        'The numbers listed here correspond to the values of races on the armory
        Unknown = 0
        Human = 1
        Orc = 2
        Dwarf = 3
        NightElf = 4
        Undead = 5
        Tauren = 6
        Gnome = 7
        Troll = 8
        BloodElf = 10
        Draenei = 11
    End Enum

    ''' <summary>
    ''' An enumeration to describe a gender
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum GenderType
        'The numbers listed here correspond to the values of genders on the armory
        Unknown = -1
        Male = 0
        Female = 1
    End Enum

    ''' <summary>
    ''' An enumeration to describe a class
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ClassType
        'The numbers listed here correspond to the values of classes on the armory
        Unknown = 0
        DeathKnight = 6
        Druid = 11
        Hunter = 3
        Mage = 8
        Paladin = 2
        Priest = 5
        Rogue = 4
        Shaman = 7
        Warlock = 9
        Warrior = 1
    End Enum

    ''' <summary>
    ''' An enumeration to describe types of calendar events
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum CalendarType
        Unknown = 0

        'The numbers listed here correspond to the values of calendar event types on the armory

        ''' <summary>
        ''' Listing of battleground holidays.  Type "bg"
        ''' </summary>
        ''' <remarks></remarks>
        BattlegroundHolidays = 7

        ''' <summary>
        ''' Listing of Darkmoon Faire arrivals.  Type "darkmoon"
        ''' </summary>
        ''' <remarks></remarks>
        DarkmoonFaire = 6

        ''' <summary>
        ''' Listing of world holiday events.  Type "holiday"
        ''' </summary>
        ''' <remarks></remarks>
        WorldHolidays = 4

        ''' <summary>
        ''' Listing of weekly events, currently only the Stranglethorn Fishing Extravaganza.  Type "holidayWeekly"
        ''' </summary>
        ''' <remarks></remarks>
        WeeklyHolidays = 5

        ''' <summary>
        ''' Listing of raid lockout expirations.  Type "raidLockout"
        ''' </summary>
        ''' <remarks></remarks>
        RaidLockouts = 2

        ''' <summary>
        ''' Listing of general raid resets.  Type "raidReset"
        ''' </summary>
        ''' <remarks></remarks>
        RaidResets = 3
    End Enum

    ''' <summary>
    ''' An enumeration to describe item slots used on the character sheet
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ItemSlotType
        None = -1
        Head = 0
        Neck = 1
        Shoulders = 2
        Shirt = 3
        Chest = 4
        Waist = 5
        Legs = 6
        Feet = 7
        Wrists = 8
        Hands = 9
        Finger1 = 10
        Finger2 = 11
        Trinket1 = 12
        Trinket2 = 13
        Back = 14
        MainHand = 15
        OffHand = 16
        Ranged = 17
        Tabard = 18
    End Enum

    ''' <summary>
    ''' An enumeration to describe damage types
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum DamageTypeType
        Physical = 0
        Holy = 1
        Fire = 2
        Nature = 3
        Frost = 4
        Shadow = 5
        Arcane = 6
    End Enum

    ''' <summary>
    ''' An enumeration to describe binding type
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum BondingType
        NoBinding = 0
        BindOnPickup = 1
        BindOnEquip = 2
        BindOnUse = 3
        QuestItem = 4

        ''' <summary>
        ''' The Armory defines a bonding type of 5 as being the same as 4, but as of yet I cannot find any instance of it
        ''' </summary>
        ''' <remarks></remarks>
        OtherQuestItem = 5
    End Enum

    ''' <summary>
    ''' An enumeration to describe inventory type
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum InventoryType
        NonEquipType = 0
        Head = 1
        Neck = 2
        Shoulders = 3
        Shirt = 4

        ''' <summary>
        ''' Does not include robes, see InventoryType.ChestRobe for robes
        ''' </summary>
        ''' <remarks></remarks>
        Chest = 5
        Waist = 6
        Legs = 7
        Feet = 8
        Wrist = 9
        Hands = 10
        Finger = 11
        Trinket = 12
        OneHand = 13

        ''' <summary>
        ''' Off hand slot, exclusively for shields, see InventoryType.OffHand for other off hands
        ''' </summary>
        ''' <remarks></remarks>
        OffHandShield = 14

        ''' <summary>
        ''' Ranged slot, exclusively for bows, see InventoryType.Ranged for other ranged
        ''' </summary>
        ''' <remarks></remarks>
        RangedBow = 15
        Back = 16
        TwoHand = 17
        Bag = 18
        Tabard = 19

        ''' <summary>
        ''' Chest slot, exclusively for robes, see InventoryType.Chest for other chests
        ''' </summary>
        ''' <remarks></remarks>
        ChestRobe = 20
        MainHand = 21

        ''' <summary>
        ''' Does not include shields or frills, see InventoryType.OffHandShield for shields and InventoryType.OffHandFrill for frills
        ''' </summary>
        ''' <remarks></remarks>
        OffHand = 22

        ''' <summary>
        ''' Off hand slot, exclusively for frills, see InventoryType.OffHand for other off hands
        ''' </summary>
        ''' <remarks></remarks>
        OffHandFrill = 23
        Projectile = 24
        Thrown = 25

        ''' <summary>
        ''' Does not include bows, see InventoryType.RangedBow for bows
        ''' </summary>
        ''' <remarks></remarks>
        Ranged = 26
        Quiver = 27

        ''' <summary>
        ''' Includes totems, idols, librams and relics
        ''' </summary>
        ''' <remarks></remarks>
        Relic = 28
    End Enum

    ''' <summary>
    ''' An enumeration to describe an item's source
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum SourceType
        ''' <summary>
        ''' sourceType.none
        ''' </summary>
        ''' <remarks></remarks>
        None = 0

        ''' <summary>
        ''' sourceType.questReward
        ''' </summary>
        ''' <remarks></remarks>
        QuestReward = 1

        ''' <summary>
        ''' sourceType.creatureDrop
        ''' </summary>
        ''' <remarks></remarks>
        CreatureDrop = 2

        ''' <summary>
        ''' sourceType.gameObjectDrop
        ''' </summary>
        ''' <remarks></remarks>
        ObjectDrop = 3

        ''' <summary>
        ''' sourceType.factionReward
        ''' </summary>
        ''' <remarks></remarks>
        FactionReward = 4

        ''' <summary>
        ''' sourceType.pvpReward
        ''' </summary>
        ''' <remarks></remarks>
        PvpReward = 5

        ''' <summary>
        ''' sourceType.vendorPvP
        ''' </summary>
        ''' <remarks></remarks>
        PvpRewardVendor = 6

        ''' <summary>
        ''' sourceType.vendor
        ''' </summary>
        ''' <remarks></remarks>
        Vendor = 7

        ''' <summary>
        ''' sourceType.pickPocket
        ''' </summary>
        ''' <remarks></remarks>
        Pickpocketing = 8

        ''' <summary>
        ''' sourceType.creatureSkin
        ''' </summary>
        ''' <remarks></remarks>
        Skinning = 9

        ''' <summary>
        ''' sourceType.creatureMine
        ''' </summary>
        ''' <remarks></remarks>
        Mining = 10

        ''' <summary>
        ''' sourceType.creatureHerb
        ''' </summary>
        ''' <remarks></remarks>
        Herbalism = 11

        ''' <summary>
        ''' sourceType.startsQuest
        ''' </summary>
        ''' <remarks></remarks>
        QuestStartingItem = 12

        ''' <summary>
        ''' sourceType.providedQuest
        ''' </summary>
        ''' <remarks></remarks>
        QuestProvidedItem = 13

        ''' <summary>
        ''' sourceType.objQuest
        ''' </summary>
        ''' <remarks></remarks>
        QuestObjective = 14

        ''' <summary>
        ''' sourceType.createdBySpell
        ''' </summary>
        ''' <remarks></remarks>
        CreatedBySpell = 15

        ''' <summary>
        ''' sourceType.reagentSpell
        ''' </summary>
        ''' <remarks></remarks>
        Reagent = 16

        ''' <summary>
        ''' sourceType.createdByPlans
        ''' </summary>
        ''' <remarks></remarks>
        CreatedByPlans = 17

        ''' <summary>
        ''' sourceType.currency
        ''' </summary>
        ''' <remarks></remarks>
        Currency = 18

        ''' <summary>
        ''' sourceType.planForItem
        ''' </summary>
        ''' <remarks></remarks>
        Plans = 19

        ''' <summary>
        ''' sourceType.worldDrop
        ''' </summary>
        ''' <remarks></remarks>
        WorldDrop = 20
    End Enum

    ''' <summary>
    ''' An enumeration to describe the trigger type of an item's ability
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum SpellTriggerType
        ''' <summary>
        ''' Does not include items used for learning things, such as pets or recipes.  See SpellTriggerType.UseLearning for such uses
        ''' </summary>
        ''' <remarks></remarks>
        Use = 0
        Equip = 1
        ChanceOnHit = 2

        ''' <summary>
        ''' Use trigger, specifically for learning things, such as pets or recipes.  See SpellTriggerType.Use for generic use triggers
        ''' </summary>
        ''' <remarks></remarks>
        UseLearning = 6
    End Enum

    ''' <summary>
    ''' An enumeration to describe a character's standing with a faction
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum FactionStandingType
        None = -1
        Hated = 0
        Hostile = 1
        UnPublicly = 2
        Neutral = 3
        Publicly = 4
        Honored = 5
        Revered = 6
        Exalted = 7
    End Enum

    ''' <summary>
    ''' An enumeration to describe an item's class
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ItemClassType
        Consumables = 0
        Containers = 1
        Weapons = 2
        Gems = 3
        Armor = 4
        Projectiles = 6
        Reagents = 7
        Unusued = 8 'Only Fish Scale, id 6987, uses this, but it's not in the game.
        Recipes = 9
        Currency = 10
        Quivers = 11
        QuestItems = 12 'Also includes head and shoulder enchants
        Keys = 13
        Miscellaneous = 15
        Glyphs = 16
    End Enum

    ''' <summary>
    ''' An enumeration to describe a feed's sorting
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum FeedSortType
        Unknown = 0
        Today = 1
        Yesterday = 2
        Earlier = 3
    End Enum

    ''' <summary>
    ''' An enumeration to describe a feed's event
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum FeedEventType
        Unknown = 0
        Achievement = 1
        Criteria = 2
        BossKill = 3
        Loot = 4
        Respec = 5
    End Enum

End Namespace